knight probability in chessboard dynamic programming